1. Field of the Invention
The present invention relates to the field of computer graphics, compositing images, adding special effects to images, and increasing the performance thereof.
2. Background
Compositing images is the combining of more than one image to create a single new image. Compositing of images can be performed with a single image frame, such as a photograph or a sequence of images, such as film or movies. For example an image of a fish could be combined with the image of a grassy field so that the fish is swimming in the grass. Alternatively, two (or more) sequences of images can be composited. For example, a sequence of images of a wind blown grassy field and a sequence of images of a school of fish swimming through the ocean may be composited to form a sequence of images showing the school of fish swimming through the grassy field. The school of fish and/or the grassy field may be created in an animation program or be a film of real world events.
Compositing also includes the techniques of enhancing a sequence of images captured on film by adding special effects, computer generated images, still images, animation, and other filmed images to a motion picture. Compositing is used to alter a sequence of film, thus creating a new sequence of images. Special effects, computer generated images, still images, animation and other filmed images are combined with film by compositing to create a new, altered sequence of images.
To create an end result image or sequence of images, input images from various sources are combined with various effects. Effects may also be referred to as operators. Examples of effects include hue, color correction, zoom, composite, translate, rotate, scale, and shear.
The present invention provides a system and method for increasing the performance of a compositing system when compositing images represented as a directed acyclic graph. The method comprises identifying at least one critical path, determining a set of input nodes to each critical path, and caching the images at each of the input nodes to each critical path. The critical paths may comprise all nodes between and including the edit nodes on one end and the view node at another end. The method may also include receiving a user designation of at least one view node and at least one edit node, receiving a request to view the video presentation at a view node, processing image data at the view node responsive to the request, and displaying the video presentation at the view node. Caching may be implemented when processing nodes such that when processing a node, a determination is made whether the node is an input node to one of the critical paths. If a node is an input node to one of the critical paths, the cache memory is checked to determine if the node is already cached. If the node is cached, the node is retrieved from cache memory; if the node is not in the cache, the node is processed and the resulting image is cached.